package edu.pku.sei.act.model.mote;

import edu.pku.sei.act.model.common.ArchiModelConst;
import edu.pku.sei.gmp.model.concept.GMPModelElement;
import edu.pku.sei.gmp.model.util.GMPTypedList;
import edu.pku.sei.gmp.properties.annotation.GMPAnnotation;

public class PackageI extends GMPModelElement{
	
	@GMPAnnotation(
			id = "edu.pku.sei.act.model.package.Name",
			name = ArchiModelConst.PACKAGE_NAME,
			category = "Model",
			getter = "getName",
			setter = "setName",
			visible = true,
			serialize = true
			)
	private String name;
	

	@GMPAnnotation(
			id = "edu.pku.sei.act.model.package.mote",
			name = ArchiModelConst.PACKAGE_MOTE,
			category = "Model",
			getter = "getMote",
			setter = "setMote",
			visible = false,
			serialize = true,
			reference = false
			)
	private GMPTypedList<MoteForPackage> mote = new GMPTypedList<MoteForPackage>(
				ArchiModelConst.PACKAGE_MOTE, GMPTypedList.BAG, this, MoteForPackage.class, true);
	
	/*@GMPAnnotation(
			id = "edu.pku.sei.act.model.package.diagram",
			name = ArchiModelConst.PACKAGE_DIAGRAM,
			category = "Model",
			getter = "getChildrenDiagram",
			setter = "setChildrenDiagram",
			visible = false,
			serialize = true,
			reference = false
			)
	private GMPTypedList<GMP> mote = new GMPTypedList<MoteForPackage>(
				ArchiModelConst.PACKAGE_MOTE, GMPTypedList.BAG, this, MoteForPackage.class, true);*/
	
	public void setName(String name){
		this.name = name;
	}
	
	public String getName(){
		return this.name;
	}
	
	public void setMote(GMPTypedList<MoteForPackage> mote){
		this.mote = mote;
	}
	
	public GMPTypedList<MoteForPackage> getMote(){
		return this.mote;
	}

}
